<?php

namespace App\Models;

use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Model;

class User extends Model implements Authenticatable {
    protected $table = 'users'; // 表名

    protected $fillable = ['name', 'password', 'email'];

    /**
     * 获取认证标识符的名称（通常是 `id`）。
     *
     * @return string
     */
    public function getAuthIdentifierName()
    {
        return 'id'; // 通常是 'id'，可以根据实际情况调整
    }

    /**
     * 获取认证标识符（通常是用户的主键 id）。
     *
     * @return mixed
     */
    public function getAuthIdentifier()
    {
        return $this->getKey(); // 默认返回主键
    }

    /**
     * 获取密码字段值。
     *
     * @return string
     */
    public function getAuthPassword()
    {
        return $this->password; // 返回加密后的密码字段
    }

    /**
     * 获取 "记住我" 会话的 token 值。
     *
     * @return string
     */
    public function getRememberToken()
    {
        return $this->remember_token; // 默认的 remember_token 字段
    }

    /**
     * 设置 "记住我" 会话的 token 值。
     *
     * @param string $value
     * @return void
     */
    public function setRememberToken($value)
    {
        $this->remember_token = $value; // 设置 remember_token 字段
    }

    /**
     * 获取 "记住我" token 的列名。
     *
     * @return string
     */
    public function getRememberTokenName()
    {
        return 'remember_token'; // 默认的 remember_token 字段名
    }
}
